import Foundation
import ServiceStack
public class ProcessProjectRequestMessage : Codable
{
public var instanceId:String
public var projectRequest:ProjectRequestMessage
required public init(){}
}
public class ProjectRequestMessage : Codable
{
public var header:Header
public var projectReference:Reference
public var includeHousingTypes:Bool
public var includeConstructionBlocks:Bool
public var includeConstructionNumbers:Bool
public var includeDocuments:Bool
public var includePurchaseContracts:Bool
required public init(){}
}
public class Header : Codable
{
public var messageID:String
public var timestamp:Date
public var sender:Party
public var recipient:Party
//requestMessageID:Object ignored. Type could not be extended in Swift
required public init(){}
}
public class Party : Codable
{
public var title:String
public var code:String
public var version:String
public var environment:Environment
required public init(){}
}
public class Environment : Codable
{
public var title:String
public var code:String
required public init(){}
}
public class Reference : Codable
{
public var globalID:String
public var title:String
required public init(){}
}
public class ProjectResponseMessage : Codable
{
public var header:Header
public var projectReference:Reference
public var project:Project
public var housingTypes:[HousingType] = []
public var constructionBlocks:[ConstructionBlock] = []
public var constructionNumbers:[ConstructionNumber] = []
public var documents:[Document] = []
public var purchaseContracts:[PurchaseContract] = []
required public init(){}
}
public class Project : Codable
{
public var globalID:String
public var creationDate:Date?
public var createdBy:String
public var modifiedDate:Date?
public var modifiedBy:String
public var code:String
public var name:String
public var description1:String
public var description2:String
public var address:Address
public var mailingAddress:MailingAddress
public var projectCategoryReference:Reference
public var projectTypeReference:Reference
public var projectStatusReference:Reference
public var startDate:Date?
public var endDate:Date?
public var completionDate:Date?
public var inactive:Bool
public var website:String
public var isTemplateProject:Bool
public var customFields:[CustomField] = []
required public init(){}
}
public class Address : Codable
{
public var addressLine1:String
public var addressLine2:String
public var houseNumber:String
public var houseNumberSuffix:String
public var postalCode:String
public var city:String
public var country:Reference
required public init(){}
}
public class MailingAddress : Codable
{
public var poBox:String
public var postalCode:String
public var city:String
public var country:Reference
required public init(){}
}
public class CustomField : Codable
{
public var name:String
public var value:String
required public init(){}
}
public class HousingType : Codable
{
public var globalID:String
public var projectReference:Reference
public var code:String
public var Description:String
public var customFields:[CustomField] = []
public var creationDate:Date?
public var createdBy:String
public var modifiedDate:Date?
public var modifiedBy:String
required public init(){}
}
public class ConstructionBlock : Codable
{
public var globalID:String
public var projectReference:Reference
public var code:String
public var Description:String
public var customFields:[CustomField] = []
public var creationDate:Date?
public var createdBy:String
public var modifiedDate:Date?
public var modifiedBy:String
required public init(){}
}
public class ConstructionNumber : Codable
{
public var globalID:String
public var projectReference:Reference
public var housingTypeReference:Reference
public var constructionBlockReference:Reference
public var code:String
public var Description:String
public var address:Address
public var rentalHouse:Bool
public var guaranteeCertificateNumber:String
public var inactive:Bool
public var customFields:[CustomField] = []
public var creationDate:Date?
public var createdBy:String
public var modifiedDate:Date?
public var modifiedBy:String
public var viewingDate:Date?
public var viewingDateSpecified:Bool
public var deliveryDate:Date?
public var deliveryDateSpecified:Bool
required public init(){}
}
public class Document : ICustomProperties, Codable
{
public var id:String
public var rootDocumentID:String
public var registrationprofileID:String
public var title:String
public var fullTitle:String
public var number:String
public var version:String
public var externalNumber:String
public var externalVersion:String
public var internalNumber:String
public var internalInvoiceNumber:String
public var personID:Int
public var relationID:Int
public var relationTitle:String
public var projectID:Int
public var projectTitle:String
public var `extension`:String
public var date:Date?
public var commentsCount:Int
public var hasComments:Bool
public var hasPreview:Bool
public var extraField:String
public var isFavorite:Bool
public var documentcategoryText:String
public var fileSize:Int?
public var fileDate:Date?
public var hash:String
public var hashType:String
public var fileUrl:String
public var standardDocumentUrl:String
public var isCorporateIdentity:Bool
public var userTitle:String
public var isFrozen:Bool
public var internalCompanyID:Int
public var directUrl:String
public var allowDigitalSigningOnlyOnPrimaryVersions:Bool
public var isPrimaryVersion:Bool
public var fileExtension:String
public var customProperties:[String:Object] = [:]
required public init(){}
}
public class PurchaseContract : Codable
{
public var globalID:String
public var code:String
public var Description:String
public var projectReference:Reference
public var productCode:String
public var relation:Relation
public var inactive:Bool
public var customFields:[CustomField] = []
public var creationDate:Date?
public var createdBy:String
public var modifiedDate:Date?
public var modifiedBy:String
required public init(){}
}
public class Relation : Codable
{
public var globalID:String
public var nameLine1:String
public var nameLine2:String
public var address:Address
public var mailingAddress:MailingAddress
public var telephone:String
public var mobile:String
public var email:String
public var iban:String
public var bankAccountNumber:String
public var website:String
public var inactive:Bool
public var customFields:[CustomField] = []
public var creationDate:Date?
public var createdBy:String
public var modifiedDate:Date?
public var modifiedBy:String
required public init(){}
}
Swift ProcessProjectRequestMessage DTOs
To override the Content-type in your clients, use the HTTP Accept Header, append the .xml suffix or ?format=xml
The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.
POST /xml/reply/ProcessProjectRequestMessage HTTP/1.1
Host: kpm_digiofficeapigateway.tbi.nl
Accept: application/xml
Content-Type: application/xml
Content-Length: length
<ProcessProjectRequestMessage xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/DigiOffice.Integration.TBIXchangeAzure.Messages">
<InstanceId>00000000-0000-0000-0000-000000000000</InstanceId>
<ProjectRequest>
<Header>
<MessageID>String</MessageID>
<Recipient>
<Code>String</Code>
<Environment>
<Code>String</Code>
<Title>String</Title>
</Environment>
<Title>String</Title>
<Version>String</Version>
</Recipient>
<RequestMessageID />
<Sender>
<Code>String</Code>
<Environment>
<Code>String</Code>
<Title>String</Title>
</Environment>
<Title>String</Title>
<Version>String</Version>
</Sender>
<Timestamp>0001-01-01T00:00:00</Timestamp>
</Header>
<IncludeConstructionBlocks>false</IncludeConstructionBlocks>
<IncludeConstructionNumbers>false</IncludeConstructionNumbers>
<IncludeDocuments>false</IncludeDocuments>
<IncludeHousingTypes>false</IncludeHousingTypes>
<IncludePurchaseContracts>false</IncludePurchaseContracts>
<ProjectReference>
<GlobalID>String</GlobalID>
<Title>String</Title>
</ProjectReference>
</ProjectRequest>
</ProcessProjectRequestMessage>
HTTP/1.1 200 OK
Content-Type: application/xml
Content-Length: length
<ProjectResponseMessage xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/DigiOffice.Integration.TBIXchangeAzure.Messages">
<ConstructionBlocks>
<ConstructionBlock>
<Code>String</Code>
<CreatedBy>String</CreatedBy>
<CreationDate>0001-01-01T00:00:00</CreationDate>
<CustomFields>
<CustomField>
<Name>String</Name>
<Value>String</Value>
</CustomField>
</CustomFields>
<Description>String</Description>
<GlobalID>String</GlobalID>
<ModifiedBy>String</ModifiedBy>
<ModifiedDate>0001-01-01T00:00:00</ModifiedDate>
<ProjectReference>
<GlobalID>String</GlobalID>
<Title>String</Title>
</ProjectReference>
</ConstructionBlock>
</ConstructionBlocks>
<ConstructionNumbers>
<ConstructionNumber>
<Address>
<AddressLine1>String</AddressLine1>
<AddressLine2>String</AddressLine2>
<City>String</City>
<Country>
<GlobalID>String</GlobalID>
<Title>String</Title>
</Country>
<HouseNumber>String</HouseNumber>
<HouseNumberSuffix>String</HouseNumberSuffix>
<PostalCode>String</PostalCode>
</Address>
<Code>String</Code>
<ConstructionBlockReference>
<GlobalID>String</GlobalID>
<Title>String</Title>
</ConstructionBlockReference>
<CreatedBy>String</CreatedBy>
<CreationDate>0001-01-01T00:00:00</CreationDate>
<CustomFields>
<CustomField>
<Name>String</Name>
<Value>String</Value>
</CustomField>
</CustomFields>
<DeliveryDate>0001-01-01T00:00:00</DeliveryDate>
<DeliveryDateSpecified>false</DeliveryDateSpecified>
<Description>String</Description>
<GlobalID>String</GlobalID>
<GuaranteeCertificateNumber>String</GuaranteeCertificateNumber>
<HousingTypeReference>
<GlobalID>String</GlobalID>
<Title>String</Title>
</HousingTypeReference>
<Inactive>false</Inactive>
<ModifiedBy>String</ModifiedBy>
<ModifiedDate>0001-01-01T00:00:00</ModifiedDate>
<ProjectReference>
<GlobalID>String</GlobalID>
<Title>String</Title>
</ProjectReference>
<RentalHouse>false</RentalHouse>
<ViewingDate>0001-01-01T00:00:00</ViewingDate>
<ViewingDateSpecified>false</ViewingDateSpecified>
</ConstructionNumber>
</ConstructionNumbers>
<Documents>
<Document>
<Code>String</Code>
<ConstructionBlockReference>
<GlobalID>String</GlobalID>
<Title>String</Title>
</ConstructionBlockReference>
<ConstructionNumberReference>
<GlobalID>String</GlobalID>
<Title>String</Title>
</ConstructionNumberReference>
<CreatedBy>String</CreatedBy>
<CreationDate>0001-01-01T00:00:00</CreationDate>
<CustomFields>
<CustomField>
<Name>String</Name>
<Value>String</Value>
</CustomField>
</CustomFields>
<DeletedDate>0001-01-01T00:00:00</DeletedDate>
<DeletedDateSpecified>false</DeletedDateSpecified>
<DocumentTypeReference>
<GlobalID>String</GlobalID>
<Title>String</Title>
</DocumentTypeReference>
<File>
<Content>String</Content>
<ModifiedDate>0001-01-01T00:00:00</ModifiedDate>
<Name>String</Name>
<Size>0</Size>
<Type>String</Type>
</File>
<Floor>0</Floor>
<FloorSpecified>false</FloorSpecified>
<GlobalID>String</GlobalID>
<HousingTypeReference>
<GlobalID>String</GlobalID>
<Title>String</Title>
</HousingTypeReference>
<ModifiedBy>String</ModifiedBy>
<ModifiedDate>0001-01-01T00:00:00</ModifiedDate>
<NewestVersion>false</NewestVersion>
<ProjectReference>
<GlobalID>String</GlobalID>
<Title>String</Title>
</ProjectReference>
<RelationReference>
<GlobalID>String</GlobalID>
<Title>String</Title>
</RelationReference>
<RootDocumentID>String</RootDocumentID>
<Subject>String</Subject>
<VersionNumber>String</VersionNumber>
</Document>
</Documents>
<Header>
<MessageID>String</MessageID>
<Recipient>
<Code>String</Code>
<Environment>
<Code>String</Code>
<Title>String</Title>
</Environment>
<Title>String</Title>
<Version>String</Version>
</Recipient>
<RequestMessageID />
<Sender>
<Code>String</Code>
<Environment>
<Code>String</Code>
<Title>String</Title>
</Environment>
<Title>String</Title>
<Version>String</Version>
</Sender>
<Timestamp>0001-01-01T00:00:00</Timestamp>
</Header>
<HousingTypes>
<HousingType>
<Code>String</Code>
<CreatedBy>String</CreatedBy>
<CreationDate>0001-01-01T00:00:00</CreationDate>
<CustomFields>
<CustomField>
<Name>String</Name>
<Value>String</Value>
</CustomField>
</CustomFields>
<Description>String</Description>
<GlobalID>String</GlobalID>
<ModifiedBy>String</ModifiedBy>
<ModifiedDate>0001-01-01T00:00:00</ModifiedDate>
<ProjectReference>
<GlobalID>String</GlobalID>
<Title>String</Title>
</ProjectReference>
</HousingType>
</HousingTypes>
<Project>
<Address>
<AddressLine1>String</AddressLine1>
<AddressLine2>String</AddressLine2>
<City>String</City>
<Country>
<GlobalID>String</GlobalID>
<Title>String</Title>
</Country>
<HouseNumber>String</HouseNumber>
<HouseNumberSuffix>String</HouseNumberSuffix>
<PostalCode>String</PostalCode>
</Address>
<Code>String</Code>
<CompletionDate>0001-01-01T00:00:00</CompletionDate>
<CreatedBy>String</CreatedBy>
<CreationDate>0001-01-01T00:00:00</CreationDate>
<CustomFields>
<CustomField>
<Name>String</Name>
<Value>String</Value>
</CustomField>
</CustomFields>
<Description1>String</Description1>
<Description2>String</Description2>
<EndDate>0001-01-01T00:00:00</EndDate>
<GlobalID>String</GlobalID>
<Inactive>false</Inactive>
<IsTemplateProject>false</IsTemplateProject>
<MailingAddress>
<City>String</City>
<Country>
<GlobalID>String</GlobalID>
<Title>String</Title>
</Country>
<POBox>String</POBox>
<PostalCode>String</PostalCode>
</MailingAddress>
<ModifiedBy>String</ModifiedBy>
<ModifiedDate>0001-01-01T00:00:00</ModifiedDate>
<Name>String</Name>
<ProjectCategoryReference>
<GlobalID>String</GlobalID>
<Title>String</Title>
</ProjectCategoryReference>
<ProjectStatusReference>
<GlobalID>String</GlobalID>
<Title>String</Title>
</ProjectStatusReference>
<ProjectTypeReference>
<GlobalID>String</GlobalID>
<Title>String</Title>
</ProjectTypeReference>
<StartDate>0001-01-01T00:00:00</StartDate>
<Website>String</Website>
</Project>
<ProjectReference>
<GlobalID>String</GlobalID>
<Title>String</Title>
</ProjectReference>
<PurchaseContracts>
<PurchaseContract>
<Code>String</Code>
<CreatedBy>String</CreatedBy>
<CreationDate>0001-01-01T00:00:00</CreationDate>
<CustomFields>
<CustomField>
<Name>String</Name>
<Value>String</Value>
</CustomField>
</CustomFields>
<Description>String</Description>
<GlobalID>String</GlobalID>
<Inactive>false</Inactive>
<ModifiedBy>String</ModifiedBy>
<ModifiedDate>0001-01-01T00:00:00</ModifiedDate>
<ProductCode>String</ProductCode>
<ProjectReference>
<GlobalID>String</GlobalID>
<Title>String</Title>
</ProjectReference>
<Relation>
<Address>
<AddressLine1>String</AddressLine1>
<AddressLine2>String</AddressLine2>
<City>String</City>
<Country>
<GlobalID>String</GlobalID>
<Title>String</Title>
</Country>
<HouseNumber>String</HouseNumber>
<HouseNumberSuffix>String</HouseNumberSuffix>
<PostalCode>String</PostalCode>
</Address>
<BankAccountNumber>String</BankAccountNumber>
<CreatedBy>String</CreatedBy>
<CreationDate>0001-01-01T00:00:00</CreationDate>
<CustomFields>
<CustomField>
<Name>String</Name>
<Value>String</Value>
</CustomField>
</CustomFields>
<Email>String</Email>
<GlobalID>String</GlobalID>
<IBAN>String</IBAN>
<Inactive>false</Inactive>
<MailingAddress>
<City>String</City>
<Country>
<GlobalID>String</GlobalID>
<Title>String</Title>
</Country>
<POBox>String</POBox>
<PostalCode>String</PostalCode>
</MailingAddress>
<Mobile>String</Mobile>
<ModifiedBy>String</ModifiedBy>
<ModifiedDate>0001-01-01T00:00:00</ModifiedDate>
<NameLine1>String</NameLine1>
<NameLine2>String</NameLine2>
<Telephone>String</Telephone>
<Website>String</Website>
</Relation>
</PurchaseContract>
</PurchaseContracts>
</ProjectResponseMessage>